home *** CD-ROM | disk | FTP | other *** search
Text File | 1995-08-10 | 9.6 KB | 297 lines | [TEXT/MPS ] |
- (*
- File: Lists.mod
-
- Contains: List Manager Interfaces.
-
- Version: Technology: System 7.5
- Package: Universal Interfaces 2.0 in “MPW Latest” on ETO #17
-
- Copyright: © 1984-1995 by Apple Computer, Inc.
- All rights reserved.
-
- Bugs?: If you find a problem with this file, use the Apple Bug Reporter
- stack. Include the file and version information (from above)
- in the problem description and send to:
- Internet: apple.bugs.applelink.apple.com
- AppleLink: APPLE.BUGS
-
- *)
-
- (*$IF UNDEFINED OLDROUTINENAMES*)
- (*$SET OLDROUTINENAMES FALSE*)
- (*$END*)
- (*$TAGS-*)
- (*$CALLING PASCAL*)
- MODULE Lists;
-
- IMPORT SYSTEM, Types, Quickdraw, Controls;
-
- (* $PUSH*)
- (* $ALIGN MAC68K*)
- (* $LibExport+*)
- (*$IF UNDEFINED STRICT_LISTS *)
- (*$SET STRICT_LISTS FALSE*)
- (*$END*)
- (*$IF NOT STRICT_LISTS *)
-
- CONST
- lDoVAutoscroll* = 2;
- lDoHAutoscroll* = 1;
- lOnlyOne* = -128;
- lExtendDrag* = 64;
- lNoDisjoint* = 32;
- lNoExtend* = 16;
- lNoRect* = 8;
- lUseSense* = 4;
- lNoNilHilite* = 2;
-
- (*$END*)
-
- CONST
- lInitMsg* = 0;
- lDrawMsg* = 1;
- lHiliteMsg* = 2;
- lCloseMsg* = 3;
-
- (*$IF STRICT_LISTS *)
-
- TYPE
- ListRef* = Types.Ptr;
-
- ListHandle* = ListRef;
-
- (*$ELSE*)
-
- TYPE
- ListPtr* = POINTER TO ListRec;
- ListHandle* = HANDLE TO ListRec (*ΔΔ POINTER TO ListPtr*);
-
- ListRef* = ListHandle;
-
- (*$END*)
- Cell* = Types.Point;
-
- ListBounds* = Types.Rect;
-
- DataArray* = (*ΔΔPACKEDΔΔ*) ARRAY 32001 (*ΔΔ[0..32000]ΔΔ*) OF CHAR;
-
- DataPtr* = POINTER TO DataArray;
- DataHandle* = HANDLE TO DataArray (*ΔΔ POINTER TO DataPtr*);
-
- ListSearchProcPtr* = (*ΔΔ Types.ProcPtr;*) PROCEDURE (aPtr: Types.Ptr; bPtr: Types.Ptr; aLen: INTEGER; bLen: INTEGER): INTEGER;
- (*
- ListClickLoopProcPtr uses register based parameters on the 68k and cannot
- be written in or called from a high-level language without the help of
- mixed mode or assembly glue.
-
- In*:
- => .?
- Out*:
- <= return value D0.B
- *)
- ListClickLoopProcPtr* = Types.Register68kProcPtr; (* register PROCEDURE ListClickLoop*(): BOOLEAN; *)
- ListSearchUPP* = Types.UniversalProcPtr;
- ListClickLoopUPP* = Types.UniversalProcPtr;
-
- (*$IF NOT STRICT_LISTS *)
- ListRec* = RECORD
- rView*: Types.Rect;
- port*: Quickdraw.GrafPtr;
- indent*: Types.Point;
- cellSize*: Types.Point;
- visible*: ListBounds;
- vScroll*: Controls.ControlRef;
- hScroll*: Controls.ControlRef;
- selFlags*: Types.SInt8;
- lActive*: BOOLEAN;
- lReserved*: Types.SInt8;
- listFlags*: Types.SInt8;
- clikTime*: LONGINT;
- clikLoc*: Types.Point;
- mouseLoc*: Types.Point;
- lClickLoop*: ListClickLoopUPP;
- lastClick*: Cell;
- refCon*: LONGINT;
- listDefProc*: Types.Handle;
- userHandle*: Types.Handle;
- dataBounds*: ListBounds;
- cells*: DataHandle;
- maxIndex*: INTEGER;
- cellArray*: ARRAY 1 (*ΔΔ[0..0]ΔΔ*) OF INTEGER;
- END;
-
- (*$END*)
- ListDefProcPtr* = (*ΔΔ Types.ProcPtr;*) PROCEDURE (lMessage: INTEGER; lSelect: BOOLEAN; VAR lRect: Types.Rect; lCell: Cell; lDataOffset: INTEGER; lDataLen: INTEGER; lHandle: ListRef);
- ListCellDrawProcPtr* = (*ΔΔ Types.ProcPtr;*) PROCEDURE (lMessage: INTEGER; lSelect: BOOLEAN; VAR lRect: Types.Rect; lCell: Cell; dataPtr: (*ΔΔUNIVΔΔ*) Types.Ptr; lDataLen: INTEGER; lHandle: ListRef);
- ListDefUPP* = Types.UniversalProcPtr;
- ListCellDrawUPP* = Types.UniversalProcPtr;
-
- CONST
- uppListSearchProcInfo* = $00002BE0; (* PROCEDURE (4 byte param, 4 byte param, 2 byte param, 2 byte param): 2 byte result; *)
- uppListClickLoopProcInfo* = $00000012; (* Register PROCEDURE : 1 byte in D0; *)
- uppListDefProcInfo* = $000EBD80; (* PROCEDURE (2 byte param, 1 byte param, 4 byte param, 4 byte param, 2 byte param, 2 byte param, 4 byte param); *)
- uppListCellDrawProcInfo* = $000EFD80; (* PROCEDURE (2 byte param, 1 byte param, 4 byte param, 4 byte param, 4 byte param, 2 byte param, 4 byte param); *)
-
- PROCEDURE NewListSearchProc*(userRoutine: ListSearchProcPtr): ListSearchUPP;
- (*$IF NOT GENERATINGCFM *)
- INLINE PASCAL $2E9F;
- (*$END*)
-
- PROCEDURE NewListClickLoopProc*(userRoutine: ListClickLoopProcPtr): ListClickLoopUPP;
- (*$IF NOT GENERATINGCFM *)
- INLINE PASCAL $2E9F;
- (*$END*)
-
- PROCEDURE NewListDefProc*(userRoutine: ListDefProcPtr): ListDefUPP;
- (*$IF NOT GENERATINGCFM *)
- INLINE PASCAL $2E9F;
- (*$END*)
-
- PROCEDURE NewListCellDrawProc*(userRoutine: ListCellDrawProcPtr): ListCellDrawUPP;
- (*$IF NOT GENERATINGCFM *)
- INLINE PASCAL $2E9F;
- (*$END*)
-
- PROCEDURE CallListSearchProc*(aPtr: Types.Ptr; bPtr: Types.Ptr; aLen: INTEGER; bLen: INTEGER; userRoutine: ListSearchUPP): INTEGER;
- (*$IF NOT GENERATINGCFM*)
- INLINE PASCAL $205F, $4E90;
- (*$END*)
-
- PROCEDURE CallListClickLoopProc*(userRoutine: ListClickLoopUPP): BOOLEAN;
- (*$IF NOT GENERATINGCFM*)
- INLINE PASCAL ; (*••*)
- (*To be implemented*: Glue to move parameters into registers.*)
- (*$END*)
-
- PROCEDURE CallListDefProc*(lMessage: INTEGER; lSelect: BOOLEAN; VAR lRect: Types.Rect; lCell: Cell; lDataOffset: INTEGER; lDataLen: INTEGER; lHandle: ListRef; userRoutine: ListDefUPP);
- (*$IF NOT GENERATINGCFM*)
- INLINE PASCAL $205F, $4E90;
- (*$END*)
-
- PROCEDURE CallListCellDrawProc*(lMessage: INTEGER; lSelect: BOOLEAN; VAR lRect: Types.Rect; lCell: Cell; dataPtr: (*ΔΔUNIVΔΔ*) Types.Ptr; lDataLen: INTEGER; lHandle: ListRef; userRoutine: ListCellDrawUPP);
- (*$IF NOT GENERATINGCFM*)
- INLINE PASCAL $205F, $4E90;
- (*$END*)
-
- PROCEDURE LNew*((*CONST*)VAR rView: Types.Rect; (*CONST*)VAR dataBounds: ListBounds; cSize: Types.Point; theProc: INTEGER; theWindow: Quickdraw.WindowRef; drawIt: BOOLEAN; hasGrow: BOOLEAN; scrollHoriz: BOOLEAN; scrollVert: BOOLEAN): ListRef;
- (*$IF NOT GENERATINGCFM*)
- INLINE PASCAL $3F3C, $0044, $A9E7;
- (*$END*)
- PROCEDURE LDispose*(lHandle: ListRef);
- (*$IF NOT GENERATINGCFM*)
- INLINE PASCAL $3F3C, $0028, $A9E7;
- (*$END*)
- PROCEDURE LAddColumn*(count: INTEGER; colNum: INTEGER; lHandle: ListRef): INTEGER;
- (*$IF NOT GENERATINGCFM*)
- INLINE PASCAL $3F3C, $0004, $A9E7;
- (*$END*)
- PROCEDURE LAddRow*(count: INTEGER; rowNum: INTEGER; lHandle: ListRef): INTEGER;
- (*$IF NOT GENERATINGCFM*)
- INLINE PASCAL $3F3C, $0008, $A9E7;
- (*$END*)
- PROCEDURE LDelColumn*(count: INTEGER; colNum: INTEGER; lHandle: ListRef);
- (*$IF NOT GENERATINGCFM*)
- INLINE PASCAL $3F3C, $0020, $A9E7;
- (*$END*)
- PROCEDURE LDelRow*(count: INTEGER; rowNum: INTEGER; lHandle: ListRef);
- (*$IF NOT GENERATINGCFM*)
- INLINE PASCAL $3F3C, $0024, $A9E7;
- (*$END*)
- PROCEDURE LGetSelect*(next: BOOLEAN; VAR theCell: Cell; lHandle: ListRef): BOOLEAN;
- (*$IF NOT GENERATINGCFM*)
- INLINE PASCAL $3F3C, $003C, $A9E7;
- (*$END*)
- PROCEDURE LLastClick*(lHandle: ListRef): LONGINT (*ΔΔ Cell*);
- (*$IF NOT GENERATINGCFM*)
- INLINE PASCAL $3F3C, $0040, $A9E7;
- (*$END*)
- PROCEDURE LNextCell*(hNext: BOOLEAN; vNext: BOOLEAN; VAR theCell: Cell; lHandle: ListRef): BOOLEAN;
- (*$IF NOT GENERATINGCFM*)
- INLINE PASCAL $3F3C, $0048, $A9E7;
- (*$END*)
- PROCEDURE LSearch*(dataPtr: (*ΔΔUNIVΔΔ*) Types.Ptr; dataLen: INTEGER; searchProc: ListSearchUPP; VAR theCell: Cell; lHandle: ListRef): BOOLEAN;
- (*$IF NOT GENERATINGCFM*)
- INLINE PASCAL $3F3C, $0054, $A9E7;
- (*$END*)
- PROCEDURE LSize*(listWidth: INTEGER; listHeight: INTEGER; lHandle: ListRef);
- (*$IF NOT GENERATINGCFM*)
- INLINE PASCAL $3F3C, $0060, $A9E7;
- (*$END*)
- PROCEDURE LSetDrawingMode*(drawIt: BOOLEAN; lHandle: ListRef);
- (*$IF NOT GENERATINGCFM*)
- INLINE PASCAL $3F3C, $002C, $A9E7;
- (*$END*)
- PROCEDURE LScroll*(dCols: INTEGER; dRows: INTEGER; lHandle: ListRef);
- (*$IF NOT GENERATINGCFM*)
- INLINE PASCAL $3F3C, $0050, $A9E7;
- (*$END*)
- PROCEDURE LAutoScroll*(lHandle: ListRef);
- (*$IF NOT GENERATINGCFM*)
- INLINE PASCAL $3F3C, $0010, $A9E7;
- (*$END*)
- PROCEDURE LUpdate*(theRgn: Quickdraw.RgnHandle; lHandle: ListRef);
- (*$IF NOT GENERATINGCFM*)
- INLINE PASCAL $3F3C, $0064, $A9E7;
- (*$END*)
- PROCEDURE LActivate*(act: BOOLEAN; lHandle: ListRef);
- (*$IF NOT GENERATINGCFM*)
- INLINE PASCAL $4267, $A9E7;
- (*$END*)
- PROCEDURE LCellSize*(cSize: Types.Point; lHandle: ListRef);
- (*$IF NOT GENERATINGCFM*)
- INLINE PASCAL $3F3C, $0014, $A9E7;
- (*$END*)
- PROCEDURE LClick*(pt: Types.Point; modifiers: INTEGER; lHandle: ListRef): BOOLEAN;
- (*$IF NOT GENERATINGCFM*)
- INLINE PASCAL $3F3C, $0018, $A9E7;
- (*$END*)
- PROCEDURE LAddToCell*(dataPtr: (*ΔΔUNIVΔΔ*) Types.Ptr; dataLen: INTEGER; theCell: Cell; lHandle: ListRef);
- (*$IF NOT GENERATINGCFM*)
- INLINE PASCAL $3F3C, $000C, $A9E7;
- (*$END*)
- PROCEDURE LClrCell*(theCell: Cell; lHandle: ListRef);
- (*$IF NOT GENERATINGCFM*)
- INLINE PASCAL $3F3C, $001C, $A9E7;
- (*$END*)
- PROCEDURE LGetCell*(dataPtr: (*ΔΔUNIVΔΔ*) Types.Ptr; VAR dataLen: INTEGER; theCell: Cell; lHandle: ListRef);
- (*$IF NOT GENERATINGCFM*)
- INLINE PASCAL $3F3C, $0038, $A9E7;
- (*$END*)
- PROCEDURE LRect*(VAR cellRect: Types.Rect; theCell: Cell; lHandle: ListRef);
- (*$IF NOT GENERATINGCFM*)
- INLINE PASCAL $3F3C, $004C, $A9E7;
- (*$END*)
- PROCEDURE LSetCell*(dataPtr: (*ΔΔUNIVΔΔ*) Types.Ptr; dataLen: INTEGER; theCell: Cell; lHandle: ListRef);
- (*$IF NOT GENERATINGCFM*)
- INLINE PASCAL $3F3C, $0058, $A9E7;
- (*$END*)
- PROCEDURE LSetSelect*(setIt: BOOLEAN; theCell: Cell; lHandle: ListRef);
- (*$IF NOT GENERATINGCFM*)
- INLINE PASCAL $3F3C, $005C, $A9E7;
- (*$END*)
- PROCEDURE LDraw*(theCell: Cell; lHandle: ListRef);
- (*$IF NOT GENERATINGCFM*)
- INLINE PASCAL $3F3C, $0030, $A9E7;
- (*$END*)
- (*$IF NOT STRICT_LISTS *)
- PROCEDURE LGetCellDataLocation*(VAR offset: INTEGER; VAR len: INTEGER; theCell: Cell; lHandle: ListRef);
- (*$IF NOT GENERATINGCFM*)
- INLINE PASCAL $3F3C, $0034, $A9E7;
- (*$END*)
- (*$END*)
- (*$IF OLDROUTINENAMES *)
- PROCEDURE LDoDraw*(drawIt: BOOLEAN; lHandle: ListRef);
- (*$IF NOT GENERATINGCFM*)
- INLINE PASCAL $3F3C, $002C, $A9E7;
- (*$END*)
- PROCEDURE LFind*(VAR offset: INTEGER; VAR len: INTEGER; theCell: Cell; lHandle: ListRef);
- (*$IF NOT GENERATINGCFM*)
- INLINE PASCAL $3F3C, $0034, $A9E7;
- (*$END*)
- (*$END*)
-
- (* $ALIGN RESET*)
- (* $POP*)
-
- END Lists.
-